package cn.iocoder.yudao.module.api.brokerage.user;

import cn.iocoder.yudao.module.api.brokerage.user.vo.BrokerageUserVO;
import cn.iocoder.yudao.module.api.member.vip.vo.VipUserSummaryVO;
import jakarta.annotation.Nonnull;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 *  推广用户接口
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2024/04/10
 */
public interface BrokerageUserApi {

    /**
     * 获取推广用户，不存在则创建
     *
     * @param userId     用户编号
     * @return 推广用户
     */
    @Nonnull
    BrokerageUserVO getDetail(@Nonnull Long userId);

    /**
     * 获取直推人数
     *
     * @param userId     用户编号
     */
    int getFatherCount(Long userId);

    /**
     * 获取间推人数（限二级）
     *
     * @param userId     用户编号
     */
    int getGrandpaCount(Long userId);

    /**
     * 获取会员汇总
     *
     * @param userId     用户编号
     */
    VipUserSummaryVO getVipSummary(Long userId);

}
